package com.wanli.agent.homepage.model;

import com.wanli.agent.base.DataCallBack;
import com.wanli.agent.bean.AccountOpeningPermitBean;
import com.wanli.agent.bean.ActivateResultBean;
import com.wanli.agent.bean.ActiveListBean;
import com.wanli.agent.bean.AgentBean;
import com.wanli.agent.bean.AgentRankListBean;
import com.wanli.agent.bean.AgentShowBean;
import com.wanli.agent.bean.AreaListBean;
import com.wanli.agent.bean.BankCardBean;
import com.wanli.agent.bean.BankDeposiAddressListBean;
import com.wanli.agent.bean.BankGetBankBean;
import com.wanli.agent.bean.BankGetCityBean;
import com.wanli.agent.bean.BankListBean;
import com.wanli.agent.bean.BaseResponseBean;
import com.wanli.agent.bean.BranchBrankListBean;
import com.wanli.agent.bean.BusinessDataOverviewBean;
import com.wanli.agent.bean.BusinessDataTodayBean;
import com.wanli.agent.bean.BusinessMerchantInfoBean;
import com.wanli.agent.bean.BusinessProviderInfoBean;
import com.wanli.agent.bean.BusinessProviderOrMerchantInfoBean;
import com.wanli.agent.bean.ChannelTypeBean;
import com.wanli.agent.bean.DailyStatisticsBean;
import com.wanli.agent.bean.DeviceUnifyBean;
import com.wanli.agent.bean.DeviceUnifyListBean;
import com.wanli.agent.bean.DeviceUnifyNewBean;
import com.wanli.agent.bean.DeviceUnifyReceivedBean;
import com.wanli.agent.bean.DeviceUnifyReceivedNewBean;
import com.wanli.agent.bean.EBankIndustryListBean;
import com.wanli.agent.bean.ExtensionCodeBean;
import com.wanli.agent.bean.GetWxMercIdBean;
import com.wanli.agent.bean.IdCardBean;
import com.wanli.agent.bean.ImageBean;
import com.wanli.agent.bean.IncomeListBean;
import com.wanli.agent.bean.IncomeNewBean;
import com.wanli.agent.bean.IndexMessageBean;
import com.wanli.agent.bean.IndustryListBean;
import com.wanli.agent.bean.KDBAllIndustryListBean;
import com.wanli.agent.bean.LicenseInfoBean;
import com.wanli.agent.bean.MachinesInfoBean;
import com.wanli.agent.bean.MerchantBean;
import com.wanli.agent.bean.MerchantDetailsBean;
import com.wanli.agent.bean.MerchantDetailsListBean;
import com.wanli.agent.bean.MerchantIndustryNumberBean;
import com.wanli.agent.bean.MerchantShowBean;
import com.wanli.agent.bean.OrderFeeBean;
import com.wanli.agent.bean.QueryOrderBean;
import com.wanli.agent.bean.QueryOrderListBean;
import com.wanli.agent.bean.RateNewBean;
import com.wanli.agent.bean.ReturncashListBean;
import com.wanli.agent.bean.ScanActivateBean;
import com.wanli.agent.bean.ServiceProviderBean;
import com.wanli.agent.bean.StoreActiveBean;
import com.wanli.agent.bean.StoreDeatilsBean;
import com.wanli.agent.bean.StoreHuaBeiRateBean;
import com.wanli.agent.bean.StoreListBean;
import com.wanli.agent.bean.StoreStatisticsBean;
import com.wanli.agent.bean.SubBranchListBean;
import com.wanli.agent.bean.TransferAgentBean;
import com.wanli.agent.bean.TransferAgentNewBean;
import com.wanli.agent.bean.VersionBean;
import com.wanli.agent.bean.WithdrawListBean;

import java.util.List;

public interface IHomePageModel {
    /**
     * 首页消息
     */
    void requestIndexMessage(int page, DataCallBack<IndexMessageBean> callBack);

    /**
     * 今日数据
     */
    void requestDailyStatistics(String date, DataCallBack<DailyStatisticsBean> callBack);

    /**
     * 服务商添加
     */
    void requestAgentAdd(String mobile, String name, String password, String channel_type,DataCallBack<AgentBean> callBack);

    /**
     * 服务商修改名字
     */
    void requestAgentUpdateName(String name, DataCallBack<BaseResponseBean> callBack);

    /**
     * 我的结算规则
     */
    void requestShareMoneyRateNewMy(DataCallBack<RateNewBean> callBack);

    /**
     * 新的结算规则
     */
    void requestShareMoneyRateNew(String set_agent_id, DataCallBack<RateNewBean> callBack);

    /**
     * 设置结算规则
     */
    void requestSetShareMoneyRateNew(String set_agent_id, List<RateNewBean.DataBean> mList, DataCallBack<BaseResponseBean> callBack);


    /**
     * 验证银行信息
     */
    void requestVerifyBankFourFactor(String settle_name, String settle_mobile, String id_card, String card_no,String bank_name,String bank_type,String bank_city ,String settle_type, DataCallBack<BaseResponseBean> callBack);

    /**
     * 服务商
     */
    void requestAgentIndex(int page, String has_children, String agent_field_name, String agent_field_value, String start_time, String end_time, DataCallBack<ServiceProviderBean> callBack);

    /**
     * 商户列表
     */
    void requestMerchantIndex(int page, int has_children, String merchant_field_value, DataCallBack<MerchantBean> callBack);

    /**
     * 提现-分润
     */
    void requestAgentWithdrawalAdd(String money, DataCallBack<BaseResponseBean> callBack);

    /**
     * 提现-返现
     */
    void requestAgentWithdrawalAddFx(String money, DataCallBack<BaseResponseBean> callBack);

    /**
     * 提现记录
     */
    void requestAgentWithdrawalList(int page, String status, DataCallBack<WithdrawListBean> callBack);

    /**
     * 交易查询
     */
    void requestDailyNew(String start_date, String end_date, DataCallBack<QueryOrderBean> callBack);

    /**
     * 交易查询列表
     */
    void requestDailyNewList(int page, String has_children, String pay_status, String store_name, String start_date, String end_date, DataCallBack<QueryOrderListBean> callBack);

    /**
     * 分润收益列表
     */
    void requestOrderShareMoneyDetailList(int page, String store_name, String start_date, String end_date, DataCallBack<IncomeListBean> callBack);

    /**
     * 返现收益列表
     */
    void requestReturncashOrderDetailList(int page, String start_date, String end_date, DataCallBack<IncomeListBean> callBack);

    /**
     * 机具
     */
    void requestDeviceUnifyTypeReceived(DataCallBack<DeviceUnifyBean> callBack);

    /**
     * 机具详情
     */
    void requestDeviceUnifyReceived(String type, DataCallBack<DeviceUnifyReceivedBean> callBack);

    /**
     * 机具列表
     */
    void requestDeviceUnifyReceivedList(int page, String child_agent_id, String status, String type, String condition_name, String condition_value, DataCallBack<DeviceUnifyListBean> callBack);

    /**
     * 划分给服务商
     */
    void requestTransferAgent(String agent_id, String type, String prefix, String min_no, String max_no, DataCallBack<BaseResponseBean> callBack);

    /**
     * 划分给服务商
     */
    void requestSelectTransferAgent(String in_agent_id, String type, String prefix, List<String> device_no_list, DataCallBack<BaseResponseBean> callBack);

    /**
     * 服务商
     */
    void requestTransferAgentIndex(DataCallBack<ServiceProviderBean> callBack);

    /**
     * 门店列表
     */
    void requestStoreIndex(DataCallBack<StoreListBean> callBack);

    /**
     * 划分给门店
     */
    void requesTransferStore(String store_no, String type, String prefix, String min_no, String max_no, DataCallBack<BaseResponseBean> callBack);

    /**
     * 划分给门店
     */
    void requesSelectTransferStore(String store_no, String type, String prefix, List<String> device_no_list, DataCallBack<BaseResponseBean> callBack);

    /**
     * 已划拨服务商
     */
    void requestStoreIndex(int page, String type, DataCallBack<TransferAgentBean> callBack);

    /**
     * 已划拨机具列表
     */
    void requestSonIndex(int page, String bind_agent_id, String type, DataCallBack<DeviceUnifyListBean> callBack);

    /**
     * 撤回
     */
    void requestCancelTransferAgent(String min_no, String max_no, String prefix, String type, DataCallBack<BaseResponseBean> callBack);

    /**
     * 撤回
     */
    void requestSelectCancelTransferAgent(List<String> device_no_list, String prefix, String type, DataCallBack<BaseResponseBean> callBack);

    /**
     * 机具详情
     */
    void requestDeviceUnifyShow(String id, DataCallBack<MachinesInfoBean> callBack);

    /**
     * 扫码激活
     */
    void requestDeviceEnable(String id, String no, String qrcode, String prefix, DataCallBack<ScanActivateBean> callBack);

    /**
     * 轮训订单是否支付成功
     */
    void requestReturncashOrderShow(String order_no, DataCallBack<ActivateResultBean> callBack);

    /**
     * 测试推送
     */
    void requestTestCloudHorn(String full_code, DataCallBack<BaseResponseBean> callBack);

    /**
     * 银行选择城市
     */
    void requestBankGetCity(String bank_name, String bank_area, DataCallBack<BankGetCityBean> callBack);

    /**
     * 银行选择开户行
     */
    void requestBankGetBranch(String bank_name, String bank_area, String bank_city, DataCallBack<BankGetCityBean> callBack);

    /**
     * 银行选择开户行 开店宝
     */
    void requestBankGetBranchKDB(String bank_name, String bank_city, DataCallBack<BankGetBankBean> callBack);

    /**
     * 行业
     */
    void requestIndustryIndex(DataCallBack<IndustryListBean> callBack);

    /**
     * 上传图片
     */
    void requestUploadFile(String dir_name, String file, DataCallBack<ImageBean> callBack);

    /**
     * 识别身份证
     */
    void requestAliIdCard(String file_path, String side, DataCallBack<IdCardBean> callBack);

    /**
     * 识别营业执照
     */
    void requestAliLicenseInfo(String file_path, DataCallBack<LicenseInfoBean> callBack);

    /**
     * 识别银行卡
     */
    void requestAliBankCard(String file_path, DataCallBack<BankCardBean> callBack);
    /**
     * 识别开户许可证
     */
    void requestAccountOpeningPermit(String file_path, DataCallBack<AccountOpeningPermitBean> callBack);

    /**
     * 新增门店资料
     */
    void requestStoreIncomeProfile(String merchant_id, int quick_income, String merchant_type, String merchant_name, String user_wx, String contact_name, String legal_name, String contact_mobile,
                                   String password, String legal_id_card_no, String legal_id_card_start, String legal_id_card_end, String province,
                                   String city, String area, String address, String lng, String lat, String license_no, String license_full_name,
                                   String license_address, String license_start, String license_end, String shop_type, String settle_to, String industry_id,
                                   String rate, String legal_flag, String unincorporated_id, String unincorporated_name, String account_type, String branch, String holder, String holder_id_card_no,
                                   String holder_mobile, String bank_card_no, String door_pic, String inside_pic, String cashier_desk_pic, String license_pic,
                                   String bank_card_front_pic, String legal_id_card_front_pic, String legal_id_card_back_pic, String legal_id_card_hand_pic, String non_leg_settle_auth_pic,
                                   String non_leg_idcard_front_pic, String non_leg_idcard_back_pic, String terminal_type, String collect_pic, String collect_pic_two, String merchant_register_pic,
                                   String settlement_cycle, String reg_capital, String kdb_province_id, String kdb_city_id, String kdb_area_id, String kdb_bank_code, int crp_profession,int crp_gender,String legal_mobile,String email, String bank,String bank_card_back_pic,String unionpay,String bank_type,String branch_province,String branch_city,String open_acc_area,String bank_account_permit_pic,String channel_type,String mcc_cd,
                                   DataCallBack<BaseResponseBean> callBack);

    /**
     * 保存门店资料
     */
    void requestStoreSaveProfile(String store_no, int quick_income, String merchant_type, String merchant_name, String user_wx, String contact_name, String legal_name, String contact_mobile,
                                 String legal_id_card_no, String legal_id_card_start, String legal_id_card_end, String province,
                                 String city, String area, String address, String lng, String lat, String license_no, String license_full_name,
                                 String license_address, String license_start, String license_end, String shop_type, String settle_to, String industry_id,
                                 String rate, String legal_flag,String unincorporated_id, String unincorporated_name,  String account_type, String branch, String holder, String holder_id_card_no,
                                 String holder_mobile, String bank_card_no, String door_pic, String inside_pic, String cashier_desk_pic, String license_pic,
                                 String bank_card_front_pic, String legal_id_card_front_pic, String legal_id_card_back_pic, String legal_id_card_hand_pic, String non_leg_settle_auth_pic,
                                 String non_leg_idcard_front_pic, String non_leg_idcard_back_pic, String terminal_type, String collect_pic, String collect_pic_two, String merchant_register_pic,
                                 String settlement_cycle, String reg_capital, String kdb_province_id, String kdb_city_id, String kdb_area_id, String kdb_bank_code, int crp_profession,int crp_gender,String legal_mobile,String email,String bank,String bank_card_back_pic,String unionpay,String bank_type,String branch_province,String branch_city,String open_acc_area,String bank_account_permit_pic,String channel_type,String mcc_cd,
                                         DataCallBack<BaseResponseBean> callBack);


    /**
     * 保存门店资料 电银
     */
    void requestEBankStoreSaveProfile(String store_no, String merchant_type, String merchant_name, String license_no, String license_full_name, String license_address, String license_start, String license_end, String license_pic,
                                      String province, String city, String area, String address, String lng, String lat, String contact_name, String contact_mobile,
                                      String legal_name, String legal_id_card_no, String legal_id_card_start, String legal_id_card_end, String bank, String branch,
                                      String branch_province, String branch_city, String bank_card_no, String holder_mobile, String unionpay, String door_pic,
                                      String bank_card_front_pic, String legal_id_card_front_pic, String legal_id_card_back_pic, String legal_id_card_hand_pic, String inside_pic, String cashier_desk_pic, String sign_pic,
                                      String mcc_code,
                                      DataCallBack<BaseResponseBean> callBack);

    /**
     * 新增门店资料 电银
     */
    void requestEBankStoreIncomeProfile(String merchant_type, String merchant_name, String password, String license_no, String license_full_name, String license_address, String license_start, String license_end, String license_pic,
                                        String province, String city, String area, String address, String lng, String lat, String contact_name, String contact_mobile,
                                        String legal_name, String legal_id_card_no, String legal_id_card_start, String legal_id_card_end, String bank, String branch,
                                        String branch_province, String branch_city, String bank_card_no, String holder_mobile, String unionpay, String door_pic,
                                        String bank_card_front_pic, String legal_id_card_front_pic, String legal_id_card_back_pic, String legal_id_card_hand_pic, String inside_pic, String cashier_desk_pic, String sign_pic,
                                        String mcc_code,
                                        DataCallBack<BaseResponseBean> callBack);

    /**
     * 商户列表详情
     */
    void requestMerchantShow(String id, DataCallBack<MerchantDetailsBean> callBack);
    /**
     * 重新签署
     */
    void requestStoreSendSignSms(String store_no, DataCallBack<MerchantShowBean> callBack);
    /**
     * 商户详情
     */
    void requestStoreProfile(String store_no, DataCallBack<StoreDeatilsBean> callBack);
    /**
     * 万里服务商获取微信商户号
     */
    void requestGetWxMercId(String store_no,String  ys_merc_id, DataCallBack<GetWxMercIdBean> callBack);

    /**
     * 返现收益详情
     */
    void requestReturncashOrder(String order_no, DataCallBack<ReturncashListBean> callBack);

    /**
     * 分润收益
     */
    void requestSharefliterSum(DataCallBack<OrderFeeBean> callBack);

    /**
     * 分润收益
     */
    void requestSharefliterSumNew(String relation_type,DataCallBack<OrderFeeBean> callBack);

    /**
     * 返现收益
     */
    void requestReturnfliterSum(DataCallBack<OrderFeeBean> callBack);

    /**
     * 门店筛选数量统计
     */
    void requestStoreFilterCount(DataCallBack<StoreActiveBean> callBack);

    /**
     * 门店筛选数量统计列表
     */
    void requestStoreFilterIndex(int page, String type, DataCallBack<ActiveListBean> callBack);

    /**
     * 查询门店花呗分期费率
     */
    void requestGetStoreHuaBeiRate(String store_no, DataCallBack<StoreHuaBeiRateBean> callBack);

    /**
     * 设置门店花呗分期费率
     */
    void requestSetStoreHuaBeiRate(String store_no, String dy_rate, String yinsheng_change_pic,DataCallBack<BaseResponseBean> callBack);

    /**
     * 省
     */
    void requestGetProvince(DataCallBack<AreaListBean> callBack);

    /**
     * 市
     */
    void requestGetCity(int province_code, DataCallBack<AreaListBean> callBack);

    /**
     * 获取省市区
     */
    void requestGetRegion(int code,int level, DataCallBack<BankDeposiAddressListBean> callBack);

    /**
     * 获取银行
     */
    void requestGetBank(String bank_name ,DataCallBack<BankListBean> callBack);

    /**
     *获取支行
     */
    void requesGetOpenBank(String bank_type,String city_code,DataCallBack<SubBranchListBean> callBack);

    /**
     * 银行名字
     */
    void requestGetBankName(String bank_name, DataCallBack<AreaListBean> callBack);

    /**
     * 银行分行
     */
    void requestGetBranchBankName(int page, String key, String bank_name, String province_name, String city_name, DataCallBack<BranchBrankListBean> callBack);

    /**
     * 区
     */
    void requestGetArea(int city_code, DataCallBack<AreaListBean> callBack);


    /**
     * 修改门店关闭状态
     */
    void requestChangeStoreCloseStatus(String store_no, String is_close, DataCallBack<BaseResponseBean> callBack);

    /**
     * 修改服务商提现权限
     */
    void requestChangeAgentWithdrawLimit(String set_agent_id, String limit, String agent_line, DataCallBack<BaseResponseBean> callBack);

    /**
     * 修改服务商登录权限
     */
    void requestChangeAgentLoginLimit(String set_agent_id, String limit, String agent_line, DataCallBack<BaseResponseBean> callBack);

    /**
     * 修改服务商进件权限
     */
    void requestChangeAgentIncomeLimit(String set_agent_id, String limit, String agent_line, DataCallBack<BaseResponseBean> callBack);

    /**
     * 修改服务商邀请权限
     */
    void requestChangeAgentInviteLimit(String set_agent_id, String limit, String agent_line, DataCallBack<BaseResponseBean> callBack);

    /**
     * 服务商
     */
    void requestAgentShow(String id, DataCallBack<AgentShowBean> callBack);

    /**
     * 服务商
     */
    void requestAgentGetParents(String check_agent_id, DataCallBack<AgentRankListBean> callBack);

    /**
     * 服务商
     */
    void requestAgentGetChilds(String check_agent_id, DataCallBack<AgentRankListBean> callBack);

    /**
     * 门店统计
     */
    void requestGetStoreStatistics(DataCallBack<StoreStatisticsBean> callBack);

    /**
     * 门店统计 列表
     */
    void requestGetStoreStatisticsEach(int page, String type, String merchant_field_value, String start_time, String end_time, DataCallBack<MerchantDetailsListBean> callBack);

    /**
     * 消息阅读
     */
    void requestSaveNewStatus(String message_no, DataCallBack<BaseResponseBean> callBack);

    /**
     * 版本更新
     */
    void requestClientVersion(DataCallBack<VersionBean> callBack);

    /**
     * 控制收益按钮
     */
    void requestMoneyDetailIsNew(DataCallBack<IncomeNewBean> callBack);

    /**
     * 收益 新接口
     */
    void requestMoneyDetailIndexNew(int page, String store_name, String start_date, String end_date,String relation_type, DataCallBack<IncomeListBean> callBack);

    /**
     * 机具新
     */
    void requestChildDeviceStatistics(String child_agent_id, DataCallBack<DeviceUnifyNewBean> callBack);

    /**
     * 设备使用状态统计
     */
    void requestChildDeviceStatisticsByUse(String child_agent_id, String type, DataCallBack<DeviceUnifyReceivedNewBean> callBack);

    /**
     * 设备划拨给直属统计
     */
    void requestChildDeviceNotBelong(int page, String child_agent_id, String type, DataCallBack<TransferAgentNewBean> callBack);

    /**
     * 请求行业类型
     */
    void requestIndustryType(String mcc_type, DataCallBack<EBankIndustryListBean> callBack);

    /**
     * 请求行业类型 开店宝
     */
    void requestKDBIndustryType(DataCallBack<KDBAllIndustryListBean> callBack);
    /**
     * 请求商户行业编号
     */
    void requestGetMcc(DataCallBack<MerchantIndustryNumberBean> callBack);

    /**
     * 商户拓展码信息
     */
    void agentCode(DataCallBack<ExtensionCodeBean> callBack);
    /**
     * 获取服务商类型
     */
    void requestGetAgentType(String mcc_type, DataCallBack<ChannelTypeBean> callBack);

    /**
     * 经营数据
     * 获取今日数据
     */
    void getBusinessDataToday(String product_version, DataCallBack<BusinessDataTodayBean> callBack);

    /**
     * 经营数据
     * 获取数据分析
     */
    void getDataOverview(String product_version, String by_day, String by_month, String start_time, String end_time, DataCallBack<BusinessDataOverviewBean> callBack);

    /**
     * 经营数据
     * 获取直属服务商信息
     */
    void getProviderInfo(String product_version, String agent_id, int page_size, int page_num, String agent_search, String by_day, String by_month, String start_time, String end_time, String money_sort, String store_sort, DataCallBack<BusinessProviderInfoBean> callBack);

    /**
     * 经营数据
     * 获取直属商户信息
     */
    void getMerchantInfo(String product_version, String agent_id, int page_size, int page_num, String store_search, String by_day, String by_month, String start_time, String end_time, String money_sort, String store_sort, DataCallBack<BusinessMerchantInfoBean> callBack);

    /**
     * 经营数据
     * 获取直属服务商、直属商户信息
     */
    void getProviderOrMerchantInfo(String product_version, String agent_id, int page_size, int page_num, String agent_search, String store_search, String by_day, String by_month, String start_time, String end_time, String money_sort, String store_sort, int roleFlag, DataCallBack<BusinessProviderOrMerchantInfoBean> callBack);

}
